클로드 코드 완벽 가이드 — 10장 커스텀 슬래시 커맨드 사용하기 딥다이브 학습 노트

출처: 클로드 코드 완벽 가이드 (코드팩토리 최지호) | 참고: https://github.com/codefactory-co


10장에서 다루는 내용

  • 커스텀 슬래시 커맨드 기본기 — 구조, 파라미터, 사용 방법
  • 커맨드 스코프 — 프로젝트 커맨드 vs 사용자 커맨드
  • 네임스페이싱 — 하위 폴더로 커맨드를 체계적으로 분류

전체 흐름도

[커스텀 슬래시 커맨드란?]
    |
    v
+-------------------------------------+
| 기본 구조                             |
| /<prefix>:<command-name> [arguments] |
|                                       |
| prefix    → 스코프 (project / user)   |
| command   → 마크다운 파일명 (.md 제외)  |
| arguments → 선택적 매개변수            |
+-------------------------------------+
    |
    +--------------------+---------------------+
    |                                          |
    v                                          v
+-------------------------+     +---------------------------+
| 프로젝트 커스텀 커맨드     |     | 사용자 커스텀 커맨드        |
| 위치: .claude/commands/  |     | 위치: ~/.claude/commands/  |
| 접두사: /project:         |     | 접두사: /user:              |
| 팀 공유, CI, 버전 관리     |     | 개인용, 모든 프로젝트 공통   |
+-------------------------+     +---------------------------+
    |                                          |
    +--------------------+---------------------+
                         |
                         v
        +-------------------------------+
        | 네임스페이싱                     |
        | 하위 폴더 = 네임스페이스          |
        | 예: github/create-pr.md        |
        |   → /project:github:create-pr  |
        | 커맨드를 깔끔하게 분류 관리       |
        +-------------------------------+

선수 지식 체크리스트

  • [ ] 클로드 코드 기본 슬래시 커맨드 사용법 (/, /help 등)
  • [ ] 터미널에서 파일/폴더 생성 및 편집 (mkdir, touch)
  • [ ] 마크다운(.md) 파일 작성 기초
  • [ ] CLAUDE.md의 역할과 설정 파일 구조 (8~9장)

핵심 키워드

키워드 의미
커스텀 슬래시 커맨드 자주 쓰는 프롬프트를 마크다운 파일로 저장하여 /로 호출하는 사용자 정의 커맨드
prefix 커맨드의 스코프를 나타내는 접두사 (project 또는 user)
command-name .claude/commands/ 안에 저장된 마크다운 파일 이름 (.md 제외)
arguments 커맨드 호출 시 전달하는 선택적 매개변수 (예: issue-79)
프로젝트 커스텀 커맨드 .claude/commands/에 저장, 팀 공유 및 버전 관리 대상인 프로젝트 전용 커맨드
사용자 커스텀 커맨드 ~/.claude/commands/에 저장, 모든 프로젝트에서 개인적으로 사용하는 범용 커맨드
네임스페이싱 하위 폴더를 만들어 커맨드를 그룹별로 분류하는 기법

10-1 커스텀 슬래시 커맨드 기본기

한 줄 요약

커스텀 슬래시 커맨드는 자주 쓰는 프롬프트를 마크다운 파일로 저장하고, /로 간편하게 호출하는 기능이다.

쉬운 설명 (전화번호부 비유)

"매번 전화번호를 외워서 눌러야 한다면 불편하다. 자주 거는 번호를 '엄마', '회사'로 저장해두면 이름만 터치하면 된다."

이것이 커스텀 슬래시 커맨드이다: - 커맨드 없이: 매번 긴 프롬프트를 복사-붙여넣기하거나 기억해서 타이핑 - 커맨드 사용: /create-pr처럼 짧은 이름만 입력하면 저장된 프롬프트가 자동 실행

기본 구조

/<prefix>:<command-name> [arguments]
파라미터 설명 예시
<prefix> 커맨드의 스코프 (project 또는 user) /project:
<command-name> 마크다운 파일 이름 (.md 확장자 제외) create-pr
[arguments] 선택적 매개변수 issue-79

실무 예제

# 1. 커맨드 파일 생성
mkdir -p .claude/commands
cat > .claude/commands/create-pr.md << 'EOF'
이 프로젝트의 변경사항을 분석하고 적절한 PR을 생성해주세요.
- 변경된 파일 목록을 확인
- 커밋 메시지를 기반으로 PR 제목 작성
- 변경 내용을 요약하여 PR 본문 작성
EOF

# 2. 클로드 코드에서 사용
# /project:create-pr issue-79

arguments 활용 포인트: issue-79를 입력하면 클로드 코드가 알아서 이 값을 프롬프트 맥락에서 활용한다. 직접 변수 치환이 아니라 AI가 맥락을 파악하여 사용한다.

핵심 체크포인트

  • [ ] 커맨드 파일은 반드시 .md 확장자로 저장
  • [ ] 호출할 때는 .md를 제외하고 파일명만 입력
  • [ ] arguments는 선택 사항 — 없어도 커맨드 실행 가능
  • [ ] 클로드 코드가 arguments를 어떻게 활용할지 스스로 판단

10-2 커스텀 슬래시 커맨드 스코프

한 줄 요약

커맨드를 어디에 저장하느냐에 따라 프로젝트 전용(팀 공유)인지, 개인 범용(모든 프로젝트)인지 결정된다.

쉬운 설명 (회사 vs 개인 문구 비유)

"회사 서랍에 넣으면 팀원 모두가 쓸 수 있고, 집 서랍에 넣으면 나만 어디서든 가져다 쓸 수 있다."

  • 프로젝트 커맨드 (회사 서랍): .claude/commands/ → 팀원이 git pull하면 같이 공유
  • 사용자 커맨드 (집 서랍): ~/.claude/commands/ → 개인 컴퓨터 어디서든 사용

프로젝트 커스텀 슬래시 커맨드

항목 내용
저장 위치 프로젝트 루트의 .claude/commands/
호출 접두사 /project:커맨드명
용도 CI 실행, PRD 작성, 테스트 실행, 코드 리뷰 등 프로젝트 특화 작업
버전 관리 Git에 포함 → 팀원과 공유 가능
# 프로젝트 커맨드 예시
.claude/commands/create-pr.md    →  /project:create-pr
.claude/commands/run-tests.md    →  /project:run-tests
.claude/commands/review-code.md  →  /project:review-code

사용자 커스텀 슬래시 커맨드

항목 내용
저장 위치 홈 디렉터리의 ~/.claude/commands/
호출 접두사 /user:커맨드명
용도 코드 분석, 문서 생성 등 프로젝트 무관 범용 작업
특징 한 번 정의하면 모든 프로젝트에서 사용 가능
# 사용자 커맨드 예시
~/.claude/commands/analyze-code.md  →  /user:analyze-code
~/.claude/commands/explain.md       →  /user:explain

잘못된 사용 vs 올바른 사용

❌ 팀 전체가 쓸 CI 실행 커맨드를 ~/.claude/commands/에 저장
   → 다른 팀원은 사용할 수 없음!

✅ 팀 전체가 쓸 CI 실행 커맨드를 .claude/commands/에 저장
   → Git에 포함되어 팀원과 자동 공유

❌ 개인 메모 정리용 커맨드를 .claude/commands/에 저장
   → 팀원에게 불필요한 커맨드가 보임

✅ 개인 메모 정리용 커맨드를 ~/.claude/commands/에 저장
   → 나만 사용, 어떤 프로젝트에서든 호출 가능

핵심 체크포인트

  • [ ] 팀 공유 커맨드 → .claude/commands/ (프로젝트 커맨드)
  • [ ] 개인 범용 커맨드 → ~/.claude/commands/ (사용자 커맨드)
  • [ ] 프로젝트 커맨드는 Git 버전 관리에 포함됨
  • [ ] 사용자 커맨드는 한 번 정의하면 모든 프로젝트에서 사용 가능

10-3 네임스페이싱

한 줄 요약

하위 폴더를 만들어 커맨드를 그룹별로 분류하면, 커맨드가 많아져도 체계적으로 관리할 수 있다.

쉬운 설명 (파일 캐비닛 비유)

"서류가 100장인데 전부 한 서랍에 넣으면 찾기 어렵다. 'github 관련', 'test 관련', 'deploy 관련' 폴더를 만들어 분류하면 금방 찾을 수 있다."

  • 네임스페이싱 없이: /project:create-pr, /project:run-unit-test, /project:deploy-staging → 이름이 길어지고 구분이 어려움
  • 네임스페이싱 적용: /project:github:create-pr, /project:test:unit, /project:deploy:staging → 깔끔하게 분류

네임스페이싱 구조

.claude/commands/
├── github/
│   ├── create-pr.md       →  /project:github:create-pr
│   └── review-pr.md       →  /project:github:review-pr
├── test/
│   ├── unit.md            →  /project:test:unit
│   └── integration.md     →  /project:test:integration
└── deploy/
    └── staging.md         →  /project:deploy:staging

규칙: 하위 폴더명이 곧 네임스페이스가 되고, 콜론(:)으로 구분하여 호출한다.

실무 예제

# 네임스페이싱된 커맨드 생성
mkdir -p .claude/commands/github
cat > .claude/commands/github/create-pr.md << 'EOF'
현재 브랜치의 변경사항을 분석하여 GitHub PR을 생성해주세요.
- 변경 파일 목록 확인
- 커밋 히스토리 분석
- PR 제목과 본문 자동 작성
EOF

# 호출: /project:github:create-pr
스코프 네임스페이스 위치 호출 형식
프로젝트 .claude/commands/<namespace>/<command>.md /project:<namespace>:<command>
사용자 ~/.claude/commands/<namespace>/<command>.md /user:<namespace>:<command>

핵심 체크포인트

  • [ ] 하위 폴더를 만들면 자동으로 네임스페이스가 됨
  • [ ] 호출 시 /<prefix>:<namespace>:<command> 형태로 사용
  • [ ] 프로젝트 커맨드와 사용자 커맨드 모두 네임스페이싱 가능
  • [ ] 관련 커맨드끼리 같은 폴더에 묶으면 관리가 쉬워짐

연습문제

문제 1 (기본)

다음 커맨드 호출이 참조하는 파일의 전체 경로를 적으시오.

/project:github:create-pr
정답 보기 `.claude/commands/github/create-pr.md` `project` 접두사이므로 프로젝트 루트의 `.claude/commands/` 아래, `github`은 네임스페이스(하위 폴더), `create-pr`은 파일명(.md 확장자)이다.

문제 2 (중급)

아래 요구사항을 만족하는 커맨드 파일 구조를 설계하시오.

  • 팀 전체가 사용하는 코드 리뷰 커맨드
  • 개인만 사용하는 일일 보고서 생성 커맨드
  • GitHub 관련 커맨드는 네임스페이싱으로 그룹화
정답 보기
# 팀 공유 (프로젝트 커맨드)
.claude/commands/review-code.md          → /project:review-code
.claude/commands/github/create-pr.md     → /project:github:create-pr
.claude/commands/github/review-pr.md     → /project:github:review-pr

# 개인 전용 (사용자 커맨드)
~/.claude/commands/daily-report.md       → /user:daily-report
팀 공유 커맨드는 `.claude/commands/`에, 개인 커맨드는 `~/.claude/commands/`에 저장한다. GitHub 관련 커맨드는 `github/` 폴더로 네임스페이싱한다.

문제 3 (심화)

회사에서 다음과 같은 상황이 발생했다. 원인과 해결책을 설명하시오.

"팀원 A가 만든 /project:deploy:staging 커맨드가 팀원 B의 환경에서 보이지 않는다."

정답 보기 **가능한 원인**: 1. 팀원 A가 `.claude/commands/deploy/staging.md`를 Git에 커밋/푸시하지 않았다. 2. 팀원 B가 최신 코드를 `git pull`하지 않았다. 3. 팀원 A가 실수로 `~/.claude/commands/` (사용자 커맨드)에 저장했다. **해결책**: 1. 팀원 A: 파일이 `.claude/commands/deploy/staging.md`에 있는지 확인 후 `git add`, `git commit`, `git push` 2. 팀원 B: `git pull`로 최신 코드 동기화 3. 팀 공유 목적이라면 반드시 프로젝트 `.claude/commands/`에 저장

부록 A — 용어 사전

용어 설명
슬래시 커맨드 / 기호로 시작하는 클로드 코드의 내장 또는 사용자 정의 명령어
커스텀 슬래시 커맨드 사용자가 마크다운 파일로 직접 정의한 슬래시 커맨드
prefix 커맨드의 스코프를 나타내는 접두사 (project, user)
스코프(scope) 커맨드가 적용되는 범위 — 프로젝트 단위 또는 사용자(전역) 단위
네임스페이싱 하위 폴더를 이용해 커맨드를 논리적 그룹으로 분류하는 기법
arguments 커맨드 호출 시 전달하는 선택적 매개변수
CLAUDE.md 프로젝트 루트에 두는 설정 파일로, 클로드 코드의 행동을 제어
.claude/commands/ 프로젝트 커스텀 슬래시 커맨드를 저장하는 폴더
~/.claude/commands/ 사용자 커스텀 슬래시 커맨드를 저장하는 폴더

부록 B — 비교표

프로젝트 커맨드 vs 사용자 커맨드

비교 항목 프로젝트 커맨드 사용자 커맨드
저장 위치 .claude/commands/ ~/.claude/commands/
호출 접두사 /project: /user:
공유 범위 팀 전체 (Git 포함) 본인만
버전 관리 Git에 포함 Git에 미포함
적용 범위 해당 프로젝트만 모든 프로젝트
용도 예시 CI 실행, PR 생성, 테스트 코드 분석, 메모 정리
생성 시점 프로젝트 초기화 시 최초 1회

커맨드 파일 경로 → 호출 이름 변환 규칙

파일 경로 호출 이름
.claude/commands/create-pr.md /project:create-pr
~/.claude/commands/analyze-code.md /user:analyze-code
.claude/commands/github/create-pr.md /project:github:create-pr
~/.claude/commands/github/create-pr.md /user:github:create-pr

부록 C — 참고 자료

난이도
에피소드
질문
카드를 로딩 중...
답변

클릭하거나 Space를 눌러 뒤집기

0 / 0
학습 진도 0%
이동   Space 뒤집기   R 셔플